R Advent Calendar2014@Qiita の2日目でJavaに依存せずにxlsxを読む という記事を見つけたので,忘れないように自分でもメモ.
openxlsx
パッケージを使えばJAVAに依存しないでxlsxファイルを読み込むことが出来る. その代わり,xlsファイルには非対応.
library(openxlsx)
test.xlsxというファイルの3枚のシートに下記内容のデータが保存されているとする.
read.xlsx()
関数でエクセルのxlsxファイルをRで読み込むことができる. 基本はread.xlsx("[ファイル名]",sheet=[シート番号])
でxlsxファイルの名前とシート番号を指定する.
read.xlsx("test.xlsx",sheet=1)
## X Y
## 1 1 1
## 2 2 4
## 3 3 9
sheet
はシート番号の代わりにシート名で指定することもできる.
read.xlsx("test.xlsx",sheet="Sheet1")
## X Y
## 1 1 1
## 2 2 4
## 3 3 9
日本語が変数名でも文字化けしないみたい.
read.xlsx("test.xlsx",sheet="H26")
## 年度 人口
## 1 2014 10
## 2 2013 5
1枚のシートの中に複数の表がある場合は,全て読み込まれてしまう.
read.xlsx("test.xlsx",sheet=3)
## X Y Z
## 1 1 1 A
## 2 2 2 B
## 3 Z W <NA>
## 4 1 1 <NA>
## 5 2 2 <NA>
したがって,データフレームの列番号を指定するなどする必要がある.
read.xlsx("test.xlsx",sheet=3)[1:2,]
## X Y Z
## 1 1 1 A
## 2 2 2 B